package com.dms.modules.admin.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dms.modules.admin.dto.AdminCommentAuditDTO;
import com.dms.modules.admin.dto.AdminCommentReportHandleDTO;
import com.dms.modules.admin.dto.AdminCommentRuleDTO;
import com.dms.modules.admin.dto.AdminSensitiveWordDTO;
import com.dms.modules.admin.vo.AdminCommentReportVO;
import com.dms.modules.product.vo.CommentVO;

import java.util.List;

/**
 * 管理员评论服务接口
 */
public interface AdminCommentService {

    /**
     * 获取待审核评论列表
     */
    IPage<CommentVO> getPendingComments(Page<CommentVO> page);

    /**
     * 审核评论
     */
    boolean auditComment(Long commentId, Integer status, String remark);

    /**
     * 批量审核评论
     */
    boolean batchAuditComments(AdminCommentAuditDTO dto);

    /**
     * 获取评论举报列表
     */
    IPage<AdminCommentReportVO> getCommentReports(Page<AdminCommentReportVO> page);

    /**
     * 处理评论举报
     */
    boolean handleCommentReport(AdminCommentReportHandleDTO dto);

    /**
     * 添加敏感词
     */
    Long addSensitiveWord(AdminSensitiveWordDTO dto);

    /**
     * 删除敏感词
     */
    boolean deleteSensitiveWord(Long id);

    /**
     * 获取敏感词列表
     */
    List<AdminSensitiveWordDTO> getSensitiveWords();

    /**
     * 添加评论规则
     */
    Long addCommentRule(AdminCommentRuleDTO dto);

    /**
     * 更新评论规则
     */
    boolean updateCommentRule(Long id, AdminCommentRuleDTO dto);

    /**
     * 删除评论规则
     */
    boolean deleteCommentRule(Long id);

    /**
     * 获取评论规则列表
     */
    List<AdminCommentRuleDTO> getCommentRules();

    /**
     * 评论质量评分
     */
    boolean scoreCommentQuality(Long commentId, Integer score);
} 